﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;

namespace WindowsGameLibrary1
{
    public interface Entity
    {
        //Caracteristicas de las entidades
        void LoadContent(ContentManager Content);
        void Update(GameTime gameTime);
        void Draw(SpriteBatch spriteBatch, GameTime gameTime, float order, float scroller);

        //Funciones auxiliares utiles para una entidad
        Vector2 Position();
        Vector2 ImageSize();
        void CollisionAction(Entity entity);
        // usadio para saber si es necesario chequiar las colisiones de forma mas ajustada
        // Se refiere a un rectanvulo que abarcaria toda la imagen para una primera aproximación, si los rectangulos de 2 objetos estan chocando,
        // se pasa a la siguiente fase la cual es una detección mas detallada para saber si realmente se esta colisionando o no
        BoundingBox CollisionRectangle();
        // Lista de rectangulo para saber si 2 objetos estan colisionando entre si
        // Mientras mas rectangulos tenga la entidad, posicionados adecuadamente, mayor sera el nivel de detalle de la colisión.
        List<CollisionCoordinates> CollisionRectangles();

        float GivePaintOrder();
        

        //Funcion para saber el estado de la entidad (Viva o muriendo...)
        bool isdying();
        
    }
}
